#!/usr/bin/env node

const fs = require('fs');
const path = require('path');

console.log('🚀 Trainer后台管理系统 - 环境配置工具\n');

// 获取用户输入
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

function question(prompt) {
  return new Promise((resolve) => {
    rl.question(prompt, resolve);
  });
}

async function setupEnvironment() {
  try {
    console.log('请配置您的后端API地址：\n');

    // 开发环境配置
    const devApiUrl = await question('开发环境API地址 (默认: http://localhost:8080/api): ');
    const devApi = devApiUrl.trim() || 'http://localhost:8080/api';

    // 生产环境配置
    const prodApiUrl = await question('生产环境API地址 (默认: https://your-domain.com/api): ');
    const prodApi = prodApiUrl.trim() || 'https://your-domain.com/api';

    // 测试环境配置
    const testApiUrl = await question('测试环境API地址 (默认: https://test-api.your-domain.com/api): ');
    const testApi = testApiUrl.trim() || 'https://test-api.your-domain.com/api';

    // 创建环境变量文件
    const envFiles = {
      '.env.development': `# 开发环境配置
VUE_APP_API_BASE_URL=${devApi}
VUE_APP_TITLE=Trainer后台管理系统
VUE_APP_ENV=development
`,
      '.env.production': `# 生产环境配置
VUE_APP_API_BASE_URL=${prodApi}
VUE_APP_TITLE=Trainer后台管理系统
VUE_APP_ENV=production
`,
      '.env.test': `# 测试环境配置
VUE_APP_API_BASE_URL=${testApi}
VUE_APP_TITLE=Trainer后台管理系统
VUE_APP_ENV=test
`
    };

    // 写入文件
    for (const [filename, content] of Object.entries(envFiles)) {
      fs.writeFileSync(path.join(process.cwd(), filename), content);
      console.log(`✅ 已创建 ${filename}`);
    }

    console.log('\n🎉 环境配置完成！');
    console.log('\n📋 配置信息：');
    console.log(`   开发环境: ${devApi}`);
    console.log(`   生产环境: ${prodApi}`);
    console.log(`   测试环境: ${testApi}`);

    console.log('\n🚀 启动命令：');
    console.log('   npm run serve          # 开发环境');
    console.log('   npm run build          # 生产环境构建');
    console.log('   npm run build --mode test  # 测试环境构建');

    console.log('\n📝 注意事项：');
    console.log('   1. 确保后端服务器已启动');
    console.log('   2. 检查API地址是否正确');
    console.log('   3. 如有跨域问题，请检查vue.config.js中的代理配置');

  } catch (error) {
    console.error('❌ 配置失败:', error.message);
  } finally {
    rl.close();
  }
}

// 运行配置
setupEnvironment();
